home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / sgebal.z / sgebal
Text File  |  1996-03-14  |  4KB  |  133 lines

  1.  
  2.  
  3.  
  4. SSSSGGGGEEEEBBBBAAAALLLL((((3333FFFF))))                                                          SSSSGGGGEEEEBBBBAAAALLLL((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SGEBAL - balance a general real matrix A
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      SUBROUTINE SGEBAL( JOB, N, A, LDA, ILO, IHI, SCALE, INFO )
  13.  
  14.          CHARACTER      JOB
  15.  
  16.          INTEGER        IHI, ILO, INFO, LDA, N
  17.  
  18.          REAL           A( LDA, * ), SCALE( * )
  19.  
  20. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  21.      SGEBAL balances a general real matrix A.  This involves, first, permuting
  22.      A by a similarity transformation to isolate eigenvalues in the first 1 to
  23.      ILO-1 and last IHI+1 to N elements on the diagonal; and second, applying
  24.      a diagonal similarity transformation to rows and columns ILO to IHI to
  25.      make the rows and columns as close in norm as possible.  Both steps are
  26.      optional.
  27.  
  28.      Balancing may reduce the 1-norm of the matrix, and improve the accuracy
  29.      of the computed eigenvalues and/or eigenvectors.
  30.  
  31.  
  32. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  33.      JOB     (input) CHARACTER*1
  34.              Specifies the operations to be performed on A:
  35.              = 'N':  none:  simply set ILO = 1, IHI = N, SCALE(I) = 1.0 for i
  36.              = 1,...,N; = 'P':  permute only;
  37.              = 'S':  scale only;
  38.              = 'B':  both permute and scale.
  39.  
  40.      N       (input) INTEGER
  41.              The order of the matrix A.  N >= 0.
  42.  
  43.      A       (input/output) REAL array, dimension (LDA,N)
  44.              On entry, the input matrix A.  On exit,  A is overwritten by the
  45.              balanced matrix.  If JOB = 'N', A is not referenced.  See Further
  46.              Details.  LDA     (input) INTEGER The leading dimension of the
  47.              array A.  LDA >= max(1,N).
  48.  
  49.      ILO     (output) INTEGER
  50.              IHI     (output) INTEGER ILO and IHI are set to integers such
  51.              that on exit A(i,j) = 0 if i > j and j = 1,...,ILO-1 or I =
  52.              IHI+1,...,N.  If JOB = 'N' or 'S', ILO = 1 and IHI = N.
  53.  
  54.      SCALE   (output) REAL array, dimension (N)
  55.              Details of the permutations and scaling factors applied to A.  If
  56.              P(j) is the index of the row and column interchanged with row and
  57.              column j and D(j) is the scaling factor applied to row and column
  58.              j, then SCALE(j) = P(j)    for j = 1,...,ILO-1 = D(j)    for j =
  59.              ILO,...,IHI = P(j)    for j = IHI+1,...,N.  The order in which
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSGGGGEEEEBBBBAAAALLLL((((3333FFFF))))                                                          SSSSGGGGEEEEBBBBAAAALLLL((((3333FFFF))))
  71.  
  72.  
  73.  
  74.              the interchanges are made is N to IHI+1, then 1 to ILO-1.
  75.  
  76.      INFO    (output) INTEGER
  77.              = 0:  successful exit.
  78.              < 0:  if INFO = -i, the i-th argument had an illegal value.
  79.  
  80. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  81.      The permutations consist of row and column interchanges which put the
  82.      matrix in the form
  83.  
  84.                 ( T1   X   Y  )
  85.         P A P = (  0   B   Z  )
  86.                 (  0   0   T2 )
  87.  
  88.      where T1 and T2 are upper triangular matrices whose eigenvalues lie along
  89.      the diagonal.  The column indices ILO and IHI mark the starting and
  90.      ending columns of the submatrix B. Balancing consists of applying a
  91.      diagonal similarity transformation inv(D) * B * D to make the 1-norms of
  92.      each row of B and its corresponding column nearly equal.  The output
  93.      matrix is
  94.  
  95.         ( T1     X*D          Y    )
  96.         (  0  inv(D)*B*D  inv(D)*Z ).
  97.         (  0      0           T2   )
  98.  
  99.      Information about the permutations P and the diagonal matrix D is
  100.      returned in the vector SCALE.
  101.  
  102.      This subroutine is based on the EISPACK routine BALANC.
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.